home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / dbcexe / dbclass.txt < prev    next >
Text File  |  1998-09-29  |  5KB  |  100 lines

  1. DBClass was created to help us avoid the tedium of creating Access data base classes for our VB5 applications.  It creates the classes for us, containing all the requisite lets and gets as well as list/combo box fillers, navigation tags, and other database functions that one would wish to have encapsulated within classes.  The Advanced table update feature allows programs to update only those fields that have been changed - which improves save time to tables containing many fields.  
  2.  
  3. The default class assumes that your tables' first two fields are the ID field - an autonumber, and a text description field in that order.  Your table should also contain an IsNew - YesNo - field.  If you don't want your tables to have these fields, then simply change the Add function within the generated classes that you build.  As a rule, text fields should allow nulls.  The default class also comments-out the initial recordset creation in the Class_Initialize Sub.  For small tables, you would want to un-comment this line, so that the class recordset is created upon initialization.  In tables with many records, however, you may wish to delay the recordset creation until you can apply a Filter to the class which would reduce the resulting recordset when you call Requery (see Filling a form, below).
  4.  
  5. The class builder is shareware.  The default class can be changed with the available source code.  Constructive criticism is always welcome.  You need to have VB5, SP3 on your PC already.  If DBClass does not work, then try downloading the full install from www.nesolutions.com.  
  6.  
  7. The zip includes:
  8. dbclass.exe - the utility - if you have VB5, it should just work
  9. dbclass.txt - this document
  10. errorhandler.cls - a really basic error handler that must be placed with your project
  11. propertyupdate.cls - a DBClass support class... add this and the errorhandler class along with any data classes created by DBClass to your project
  12.  
  13. DBClass should run from anywhere in your system.  DBClass will create class files within the same directory as your Access mdb files, so you will probably have to move them.  Again, if DBClass does not work on your system, then download the full installation mentioned above - keeping in mind that DBClass was created using VB5!  Northeast Solutions (Dew Design, LLC) will not be held responsible for, well, anything.  So there.  Good luck and enjoy the extra time this utility gives you to spend with family and friends.  The source code will allow you to customize DBClass to create classes for databases other than Access, using ADO, RDO, etc.  
  14.  
  15.  
  16. Sample code:
  17. The sample code is for a form that adds a record first, then updates it.  
  18.  
  19. Filling a form from the class (part of Procedure FillForm):
  20.     ("private oList as New Names" has already been declared, where Names is a class based on the Names Table within my Access database)
  21.  
  22.     With oList
  23.         .Filter = "WHERE Names.ID = " & CStr(iID) '-- Limit the class
  24.         .Requery  '-- Reset the class' recordset
  25.         '-- Fill the form fields
  26.         txtName(0) = .lname
  27.         txtName(1) = .fname
  28.         txtName(2) = .address
  29.         txtName(3) = .city
  30.         txtName(4) = .state
  31.         txtName(5) = .zip
  32.         txtName(6) = .hphone
  33.         txtName(7) = .fax
  34.         txtName(8) = .ophone
  35.         txtName(9) = .ssno
  36.         txtName(10) = .notes
  37.         chkType(0) = Abs(.buyer)
  38.         chkType(1) = Abs(.seller)
  39.         chkType(2) = Abs(.agent)
  40.         chkType(3) = Abs(.lender)
  41.         chkType(4) = Abs(.professional)
  42.         chkType(5) = Abs(.office)
  43.         chkType(6) = Abs(.mail)
  44.     End With
  45.  
  46. Adding a new record:
  47.         Call oList.Add  
  48.         Call FillForm(oList.ID)
  49.         txtName(0).SetFocus
  50.  
  51. Saving a record:
  52.         oList.isnew = False  '-- See cancel code on why there should be an IsNew flag
  53.         Call oList.Save
  54.  
  55. Cancelling an update:
  56.         If oList.isnew Then
  57.             Call oList.Delete(oList.ID)
  58.             Call FillListbox
  59.         Else
  60.             Call FillForm(oList.ID)
  61.         End If
  62.  
  63. Deleting a record:
  64.         Call oList.Delete(oList.ID)
  65.         If oList.MoveFirst Then
  66.             Call FillForm(oList.ID)
  67.         Else
  68.             Call BlankForm
  69.         End If
  70.  
  71. Filling the Data for a Combo Box:
  72.         Call oTerms.FillList(cmbTerms) 
  73.  
  74. Changing the contents of text boxes:
  75. Private Sub txtName_Change(Index As Integer)
  76.     If bLoaded Then  '-- bLoaded is set after FillForm
  77.         cmdName(1).Enabled = True  '-- Save enabled
  78.         cmdName(2).Enabled = True  '-- Cancel enabled
  79.         With oList
  80.             Select Case Index
  81.             Case 0
  82.                 .lname = txtName(0)
  83.                 bNameChange = True
  84.             Case 1
  85.                 .fname = txtName(1)
  86.                 bNameChange = True
  87.             Case 2: .address = txtName(2)
  88.             Case 3: .city = txtName(3)
  89.             Case 4: .state = txtName(4)
  90.             Case 5: .zip = txtName(5)
  91.             Case 6: .hphone = txtName(6)
  92.             Case 7: .fax = txtName(7)
  93.             Case 8: .ophone = txtName(8)
  94.             Case 9: .ssno = txtName(9)
  95.             Case 10: .notes = txtName(10)
  96.             End Select
  97.         End With
  98.     End If
  99. End Sub
  100.